(defun our-member (obj lst)
  "Whether `obj' inside `lst'."
  (if (null lst)
      nil
      (if (eql (car lst) obj)
          lst
          (our-member obj (cdr lst)))))

(our-member 'b '(a b c))

(format t "~A plus ~A equals ~A. ~%" 2 3 (+ 2 3))
(format nil "~A plus ~A equals ~A. ~%" 2 3 (+ 2 3))

(defun askem (string)
  (format t "~A" string)
  (read))

(askem "How old are you? ")

(defun ask-number ()
  (format nil "Please enter a number. "))

(ask-number)

(let ((x 1)
      (y 2))
  (+ x y))

(defun show-squares (start end)
  "Show squares' `start' and `end'."
  (do ((i start (incf i)))
      ((> i end) 'done)
    (format t "~A ~a ~%" i (* i i))))

(show-squares 1 10)

(defun show-squares-if (start end)
  (if (> start end)
      'done
      (progn
        (format t "~A ~A ~%" start (* start start))
        (show-squares (incf start) end))))

(show-squares-if 1 10)

(defun our-length (lst)
  (let ((len 0))
    (dolist (obj lst)
      (setf len (incf len)))
    len))

(our-length '(a b c))

(function our-length)

#'our-length

(apply #'+ '(1 2 3))
(apply (function +) '(1 2 3))

(funcall #'+ 1 2 3)

(funcall #'(lambda (x) (+ x 100)) 1)

(setf *glob* 98)
(boundp '*glob*)

(let ((n 10))
  (setf n 2)
  n)
